package com.FundamentalDemos.Function;

public class FunctionOverload {
    public static void main(String[] args) {
        /*
         * 学习函数重载
         * 一个类中,多个方法名称相同,但是形参列表不同(指的是形参个数,类型,顺序不同),称为方法重载,其他修饰符,返回值,形参名称等等都不重要
         */

        System.out.println("_-_-_-_-_-_-_-_-_-");
        test();
        test(1, 2);
        System.out.println("_-_-_-_-_-_-_-_-_-");
        //发射导弹案例
        fire();
        fire("America");
        fire("America", 500);
        System.out.println("_-_-_-_-_-_-_-_-_-");
    }

    public static void test() {
        System.out.println("test1");
    }

    public static void test(int a) {
        System.out.println("test2");
    }

    void test(double e) {

    }

    static int test(int a, int b) {
        System.out.println("a + b = " + (a + b));
        return a + b;
    }

    static void test(double a, int b) {

    }

    //↑↓两者形参个数相同,类型相同,但顺序不同,是合法的重载
    static void test(int a, double b) {

    }
    //↑↓两者形参个数相同,类型相同,顺序相同,名称不同,是不合法的重载
//    static void test(int b,double a){

//    }


    public static void fire() {
        System.out.println("默认朝着某岛国发射了一枚核弹~");
    }

    public static void fire(String country) {
        System.out.println("向着" + country + "发射了一枚核弹~");
    }

    public static void fire(String country, int number) {
        System.out.println("向着" + country + "发射了" + number + "枚核弹~");
    }


}



